<!DOCTYPE html>
<title>WebBundle subresource loading for static elements with a base element</title>
<link
  rel="help"
  href="https://github.com/WICG/webpackage/blob/master/explainers/subresource-loading.md"
/>
<base href="../resources/wbn/static-element/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
  <link
  rel="webbundle"
  href="../static-element.wbn"
  resources="
  https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/script.js
  https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style.css
  https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style-imported-from-file.css
  https://web-platform.test:8444/web-bundle/resources/wbn/static-element/resources/style-imported-from-tag.css"
  scopes="https://web-platform.test:8444/web-bundle/resources/wbn/static-element/scopes/"
/>
  <style type="text/css">
    @import 'resources/style-imported-from-tag.css';
    @import 'scopes/style-imported-from-tag.css';
  </style>
  <link href="resources/style.css" rel=stylesheet>
  <link href="scopes/style.css" rel=stylesheet>
  <script src="resources/script.js"></script>
  <script src="scopes/script.js"></script>
  <script src="out-of-scope/script.js"></script>

  <script>
    const onLoadPromise = new Promise((resolve) => {
      window.addEventListener('load', resolve, false);
    });
    promise_test(async () => {
      await onLoadPromise;

      assert_equals(resources_script_result, 'loaded from webbundle');
      assert_equals(scopes_script_result, 'loaded from webbundle');
      assert_equals(out_of_scope_script_result, 'loaded from network');

      ['resources_', 'scopes_'].forEach((type) => {
        ['style_target',
         'style_imported_from_file_target',
         'style_imported_from_tag_target'].forEach((target) => {
           const element = document.createElement('div');
           element.id = type + target;
           document.body.appendChild(element);
           assert_equals(window.getComputedStyle(element).color,
                         'rgb(0, 0, 255)',
                         element.id + ' color must be blue');
        });
      });
    }, "Subresources from static elements should be loaded from web bundle.");
  </script>
</body>
